Enterprise Version
abstract form